package com.dingreading.cloud.web.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 阅读兴趣测评-题目
 *
 * @author Administrator
 * @since 2023-11-22
 */
@Data
@Table(value = "read_interest_question")
public class ReadInterestQuestion implements Serializable {

    @Id(keyType = KeyType.Auto)
    private Long id;

    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(onInsertValue = "now()")
    private Date addTime;

    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(onInsertValue = "now()", onUpdateValue = "now()")
    private Date editTime;

    /**
     * 创建人uid
     */
    @ApiModelProperty(value = "创建人uid")
    private String addStaffUid;

    /**
     * 创建人姓名
     */
    @ApiModelProperty(value = "创建人姓名")
    private String addStaffName;

    /**
     * 更新人uid
     */
    @ApiModelProperty(value = "更新人uid")
    private String lastStaffUid;

    /**
     * 更新人姓名
     */
    @ApiModelProperty(value = "更新人姓名")
    private String lastStaffName;

    /**
     * 侧重点 1.语文基础 2.专注力 3.理解力 4.兴趣测评
     */
    @ApiModelProperty(value = "侧重点")
    private Integer emphasisType;

    /**
     * 侧重点名称
     */
    @ApiModelProperty(value = "侧重点名称")
    private String emphasisName;

    /**
     * 侧重点子名称
     * 语文基础，分为：1.常识、2.词语、3.句子
     * 专注力，分为：1.感知力、2.记忆力、3.阅读力
     * 理解力，分为：1.文字理解、2.图片理解、3.语境理解、4.共情理解
     */
    @ApiModelProperty(value = "侧重点子名称")
    private Integer emphasisChildType;

    /**
     * 侧重点子名称
     */
    @ApiModelProperty(value = "侧重点子名称")
    private String emphasisChildName;

    /**
     * 阶段 1.初阶 2.中阶 3.高阶
     */
    @ApiModelProperty(value = "阶段")
    private Integer stage;

    /**
     * 阶段名称
     */
    @ApiModelProperty(value = "阶段名称")
    private String stageName;

    /**
     * 上级菜单ID
     */
    @ApiModelProperty(value = "上级菜单ID")
    private Long parentId;

    /**
     * 层级节点
     */
    @ApiModelProperty(value = "层级节点")
    private String nodes;

    /**
     * 是否有次级 0.无 1.有
     */
    @ApiModelProperty(value = "是否有次级")
    private Integer subLevel;

    /**
     * 题目标题（富文本）
     */
    @ApiModelProperty(value = "题目标题")
    private String title;

    /**
     * 详情
     */
    @ApiModelProperty(value = "题目标题")
    private String details;

    /**
     * 选择类型 1.单选 2.多选
     */
    @ApiModelProperty(value = "选择类型")
    private Integer choiceType;

    /**
     * 题目分数
     */
    @ApiModelProperty(value = "题目分数")
    private Integer score;

    /**
     * 标题消失时间/秒
     */
    @ApiModelProperty(value = "标题消失时间")
    private Integer titleDisappear;

    /**
     * 音频地址
     */
    @ApiModelProperty(value = "音频地址")
    private String audioUrl;

    /**
     * 图片地址
     */
    @ApiModelProperty(value = "图片地址")
    private String imageUrl;

    /**
     * 是否禁用
     * 1.启用 0.禁用
     */
    @ApiModelProperty(value = "是否禁用")
    private Integer enabled;

    @Column(ignore = true)
    private List<ReadInterestChoice> choiceList;
    @Column(ignore = true)
    private List<ReadInterestQuestion> questionList;
}
